package edu.continental.dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import edu.continental.bean.Celular;
import edu.continental.util.Conexion;

public class CelularDAO {

	
	public void insertarCelular(String nombre, String marca, String modelo) {
		
		Conexion conexion=new Conexion();
		Connection con=conexion.getConnection();
		Statement st = null;
		ResultSet rs = null;
		
		String sql = "select max(id) as idMax from celular";
		int idMax = 0;
		
		try{
		
			st = con.createStatement();
			
			rs = st.executeQuery(sql);
			
			if ( rs.next() ) {
				//Parseamos de string a int
				idMax = Integer.parseInt(rs.getString(1));
				idMax++;
			}
			
			sql = "insert into celular (id, nombre, marca, modelo)" +
					" values (" + idMax + ", '" + nombre + "', '" + marca + "', '" + modelo + "');";
		
			st.execute(sql);
			
		} catch (Exception ex) {
			
			System.out.println("ERROR: " + ex.getMessage());
			
		}
		
	}

	public List<Celular> listarCelulares() {
		
		Conexion conexion=new Conexion();
		Connection con=conexion.getConnection();
		Statement st = null;
		ResultSet rs = null;
		List<Celular> listaCelulares = new ArrayList<Celular>();
		
		String sql = "select id, nombre, marca, modelo from celular";
		
		try {
			st = con.createStatement();
			
			rs = st.executeQuery(sql);
			
			while ( rs.next() ) {
				//Capturamos los valores de la BD
				int id = Integer.parseInt(rs.getString(1));
				String nombre = rs.getString(2);
				String marca = rs.getString(3);
				String modelo = rs.getString(4);
				
				//Instanciando el objeto
				Celular obj = new Celular();
				obj.setId(id);
				obj.setNombre(nombre);
				obj.setModelo(modelo);
				obj.setMarca(marca);
				
				//Agregamos a la lista
				listaCelulares.add(obj);
				
				
			}
		
		} catch ( Exception ex ) {
			ex.printStackTrace();
			System.out.println("ERROR: " + ex.getMessage());
		}
		
		return listaCelulares;
	}
	
	public void eliminar(String id) {
		
		Conexion conexion=new Conexion();
		Connection con=conexion.getConnection();
		Statement st = null;
		
		String sql = "delete from celular where id = " + id;
		
		try{
			st = con.createStatement();
			
			st.execute(sql);
			
		} catch (Exception ex) {
			
			System.out.println("ERROR: " + ex.getMessage());
			
		}
		
	}
	
}
